#include<iostream>
using namespace std;
//实现通用 对数组进行排序的函数
//规则 从大到小
//算法 选择
//测试 char数组 int数组
//交换函数模板
template<class T>
void swap1(T&a, T&b)
{
	T temp = a;
	a = b;
	b = temp;
}
 
//排序算法
template<class T>
void mySort(T arr[],int len)
{
	for (int i = 0; i < len; i++)
	{
		int max = i;//认定最大值的下标
		for (int j = i + 1; j < len; j++)
		{
			//认定的最大值 比遍历出的数值要下	，说明	j下标的元素	才是真正的最大值
			if (arr[max] < arr[j])
			{
				max = j;

			}
		}
		if (max != i)
		{
			//交换max和i元素
			swap1(arr[max],arr[i]);
	  }


	}
}
//提供打印数组模板
template<class T>
void printArray(T arr[], int len)
{

	for (int i = 0; i < len; i++)
	{
		cout << arr[i] << " ";
	}
	cout << endl;
}

void test01()
{
	//测试char数组
	char charArr[] = "badcfe";
	int num = sizeof(charArr) / sizeof(char);
	mySort(charArr, num);
	printArray(charArr, num);
 
}

int main() {

	test01();
}